Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 3
з курсу „ Теорія колективної поведінки інтелектуальних систем ”
Тема:
Автомати, що навчаються
Виконав:
ст. гр. КІ-4
Львів – 2005
Мета: Реалізувати вказані типи автоматів, що навчаються, та дослідити їх поведінку.
Загальні відомості
Розглядаються три типи автоматів, що навчаються (цілеспрямованих автоматів). Для кожного з цих автоматі з кожною дією ai пов’язується лічильник сi. Крім цього для автомата визначається максимальне значення лічильників m (глибина пам’яті автомата), після досягнення якого значення лічильника не збільшується, а залишається незмінним.
1. Автомат з лінійною тактикою (автомат М.Л. Целтіна).
[1.0. Всі лічильники обнуляються. Перша дія обирається випадково.]
1.1. Реалізувати обрану дію.
1.2. Отримати відгук середовища (виграш/програш).
1.3. Якщо <виграш>, то збільшити значення лічильника на один, перейти на п.1.1.
1.4. Якщо <програш>, то
1.4.1. Якщо лічильник рівний нулю, то змінити дію, перейти на п.1.1.,
1.4.2. Інакше зменшити значення лічильника на один, перейти на п.1.1.
2. Автомат В.І. Крінського ("довірливий" автомат).
[1.0. Всі лічильники обнуляються. Перша дія обирається випадково. ]
1.1. Реалізувати обрану дію.
1.2. Отримати відгук середовища (виграш/програш).
1.3. Якщо <виграш>, то встановити значення лічильника рівним m, перейти на п.1.1.
1.4. Якщо <програш>, то
1.4.1. Якщо лічильник рівний нулю, то змінити дію, перейти на п.1.1.,
1.4.2. Інакше зменшити значення лічильника на один, перейти на п.1.1.
3. Автомат Г. Робінсона ("інерційний" автомат).
[1.0. Всі лічильники обнуляються. Перша дія обирається випадково. ]
1.1. Реалізувати обрану дію.
1.2. Отримати відгук середовища (виграш/програш).
1.3. Якщо <виграш>, то встановити значення лічильника рівним m, перейти на п.1.1.
1.4. Якщо <програш>, то
1.4.1. Якщо лічильник рівний нулю, то змінити дію, встановити значення відповідного лічильника рівним m, перейти на п.1.1.,
1.4.2. Інакше зменшити значення лічильника на один, перейти на п.1.1.
В процесі взаємодії цілеспрямованого автомата з середовищем визначаються три залежності:
Залежність біжучого виграшу від часу: R(t).
Залежність біжучого сумарного виграшу від часу: R(t) = Rt.
Залежність біжучого проценту виграшних дій від часу (середнє значення виграшу, що припадає на одну дію): Ps(t) = Rt / t.
Завдання
1. Скласти програму наступного змісту (алгоритм роботи програми):
Вибрати тип середовища (env_model)
Ініціалізувати середовище (випадкова ініціалізація)
Вибрати тип автомату, що навчається.
Відкрити файл для збереження результатів
Цикл від 1 до T (індекс t)
Отримати код дії, яку обрав автомат
Отримати відгук середовища на цю дію (біжучий виграш)
Модифікувати значення сумарного виграшу
Модифікувати значення проценту виграшних (правильних) дій
Запам’ятати отриманні значення у файлі результатів
Перейти на п.4
Закрити файл результатів.
2. Реалізувати три типи автоматів, що навчаються:
2.1. Автомат з лінійною тактикою (автомат М.Л. Целтіна).
2.2. Автомат В.І. Крінського ("довірливий" автомат).
2.3. Автомат Г. Робінсона ("інерційний" автомат).
3. Дослідити поведінку автоматів кожного типу в кожному з трьох середовищ (статичне детерміноване, динамічне детерміноване, стаціонарне випадкове), отримавши для кожного випадку вказані залежності від часу.
Текст програми
/* Copyright (c) 2005 alb. All Rights Reserved. * Multiagent systems Lab
* Computer Engineering Department * Lviv Polytechnic National University
* ===============================================
* Multiagent Systems. Lab work 03. Agent design I (Learning Automata)
* Here three types of learning automata are implemented:
* - learning automaton with linear tactics (Tsetlin's automaton),
* - trustful learning automaton (Krinsky's automaton),
* - inertial learning automaton (Robins...